구체적인 성능에 주로 초점을 맞추는 최첨단 공학 소프트웨어나 과학 소프트웨어를 만드는 과정에서
- 도메인에서 중요한 수학적 추상화 식별
- 소프트웨어에서 이러한 추상화를 포괄적으로 효율적으로 표현
위의 작업이 가장 중요하다.
도메인마다 소프트웨어에 대한 올바른 표현을 찾는데 중점을 두는 이와 같은 접근법은
DDD(Domain-Driven Design)라는 프로그래밍 패러다임으로 발전했다.
패러다임의 핵심 아이디어를 소프트웨어 개발자가 도메인 전문가와의 주기적인 이야기 하며,
소프트웨어 구성 요소의 이름을 지정하고 만들어진 소프트웨어가 가능한 직관적이어야 함을 의미한다.
일반적인 과학 소프트웨어에서 나타나는 가장 일반적인 추상화는
벡터공간과 선형 연산자이다.
(선형 연산자는 한 벡터 공가넹서 다른 벡터 공간으로 투영한다.)
일반 사용자가 이해하기 직관적으로 코딩하기 위해서 단순한 프로그래밍 언어
C나 Fortran 77 과 같은 프로그래밍 언어를 사용하거나, 해당 언어로 작성된
소프트웨어와 연동해서 사용한다.
(C++에서 C나 Fortran 함수를 호출하는 방법은 다른 방법보다 쉽다.)
C나 Fortran을 이용해서 대규모 프로젝트를 수행하는 것은 비효율적이다.
따라서 C나 Fortran에서 C++을 호출하기 보다는 반대로 많이 수행한다.
C++에서 클래스의 가장 중요한 장점은 상속 매커니즘이 아닌새로운 추상화를 확립하고, 대체 실현을 제공한다는 점이다.